package q2;

/**
 * 程序员
 * @author：涂有
 * @date 2017年12月2日 下午5:32:24
 */
public class Programmer implements Runnable{
	
	/**程序员名字*/
	private String name;
	/**所属公司*/
	private Company company;

	public Programmer(String name, Company company) {
		this.name = name;
		this.company = company;
	}

	/**
	 * 开始工作
	 * @author：涂有
	 * @date 2017年12月2日 下午5:49:53
	 * @param tool 需要的开发工具
	 */
	public void work(DevelopTool tool){
		System.out.format("程序员：%s，拿到'%s'和'%s'，开始工作\n", name, tool.getDispayer().getTypeName(), tool.getKeyboard().getTypeName());
		try {
			//模拟工作时长，由于要求每个程序员劳动强度相当，所以是个固定值
			Thread.sleep(3000);
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		company.recyleTool(tool);
	}

	/**
	 * 开始上班
	 */
	@Override
	public void run() {
		while(true){
			DevelopTool tool = company.applyTool();
			if(tool != null){
				work(tool);
			}
		}
	}
}
